#!/bin/bash
#===========================================================================
# 脚本名称: export_ingress.sh
# 功能描述: 批量导出ingress配置
# 作者: weihr
# 创建日期: 2025-06-10
# 版本: v1.1
#===========================================================================

# 定义命名空间和输出目录
NAMESPACE="test"
OUTPUT_DIR="ingress_configs_$(date +%Y%m%d_%H%M%S)"

# 创建输出目录
mkdir -p "$OUTPUT_DIR"
echo "创建输出目录: $OUTPUT_DIR"

# 获取所有Ingress资源列表
INGRESS_LIST=$(kubectl get ingress -n "$NAMESPACE" -o jsonpath='{.items[*].metadata.name}')

# 检查是否有Ingress资源
if [ -z "$INGRESS_LIST" ]; then
    echo "在命名空间 '$NAMESPACE' 中未找到Ingress资源。"
    exit 1
fi

echo "找到 $(echo $INGRESS_LIST | wc -w) 个Ingress资源。开始导出..."

# 导出每个Ingress配置
for ingress in $INGRESS_LIST; do
    FILENAME="${OUTPUT_DIR}/${ingress}.yaml"
    kubectl get ingress "$ingress" -n "$NAMESPACE" -o yaml > "$FILENAME"
    echo "✓ 导出: $FILENAME"
done

# 创建汇总清单
SUMMARY="${OUTPUT_DIR}/summary.txt"
echo "命名空间: $NAMESPACE" > "$SUMMARY"
echo "导出时间: $(date)" >> "$SUMMARY"
echo "------------------------" >> "$SUMMARY"
echo "Ingress 资源列表:" >> "$SUMMARY"
for ingress in $INGRESS_LIST; do
    echo "- $ingress" >> "$SUMMARY"
done
echo "✓ 创建汇总清单: $SUMMARY"

echo "------------------------"
echo "导出完成! 文件保存在: $OUTPUT_DIR"